import wx from 'weixin-js-sdk'
import { GetJsapi } from '@/api/home'

// 配置成功返回true,即可以调用扫一扫，失败返回false
export function setWxConfig(data) {
  // console.log(data)
  GetJsapi(data).then((res) => {
    const resData = res
    wx.config({
      debug: false,
      appId: resData.appId, // 必填,公众号的唯一标识
      timestamp: resData.timestamp, // 必填,生成签名的时间戳
      nonceStr: resData.nonceStr, // 必填,生成签名的随机串
      signature: resData.signature, // 必填,签名
      jsApiList: ['scanQRCode', 'openLocation', 'getLocation'] // 必填,需要使用的JS接口列表
    })
  }).catch((res) => {
    // console.log('微信配置返回：' + res)
    return res
  })

  wx.ready(function() {
    // config信息验证成功后会执行ready方法,所有接口调用都必须在config接口获得结果之后
    // config 是一个客户端的异步操作,所以如果需要在页面加载时调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行.对于用户触发是才调用的接口,则可以直接调用,不需要放在ready函数中
    wx.checkJsApi({ // 判断当前客户端版本是否支持指定JS接口
      jsApiList: [
        'scanQRCode',
        'openLocation',
        'getLocation'
      ],
      success: function(res) { // 以键值对的形式返回，可用true，不可用false。如：{"checkResult":{"scanQRCode":true},"errMsg":"checkJsApi:ok"}
        // console.log('success:' + res)
        if (res.checkResult.scanQRCode === true) {
          return res.checkResult.scanQRCode
        } else {
          const msg = '抱歉，当前客户端版本不支持扫一扫'
          return false
        }
      },
      fail: function(res) { // 检测getNetworkType该功能失败时处理
        // console.log('fail:' + res)
        return false
      }
    })
  })

  wx.error(function(res) {
  // config 信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名
    return false
  })
}
